//粉刷房子
class Solution {
    public:
        int minCost(vector<vector<int>>& costs) {
            //costs[n][0] 表示红
            //costs[n][1] 表示绿
            //costs[n][2] 表示蓝
            int row = costs.size();
            int col = costs[0].size();
            vector<vector<int>> dp(row,vector<int>(col));
            dp[0][0] = costs[0][0];
            dp[0][1] = costs[0][1];
            dp[0][2] = costs[0][2];
            for(int i = 1; i < row; i++)
            {
                dp[i][0] = costs[i][0] + min(dp[i-1][1],dp[i-1][2]);
                dp[i][1] = costs[i][1] + min(dp[i-1][2],dp[i-1][0]);
                dp[i][2] = costs[i][2] + min(dp[i-1][0],dp[i-1][1]);
            }
            return min(dp[row-1][0],min(dp[row-1][2],dp[row-1][1]));
        }
    };